fn main() {
    println!("{} days", 31);

    // 用变量替换字符串有多种写法。
    // 比如可以使用位置参数。
    println!("{0}, this is {1}. {1}", "章三", "里斯");

    // 可以使用命名参数。
    println!(
        "{subject} {verb} {object}",
        object = "我是object",
        subject = "我是subject",
        verb = "我是verb"
    );

    // 可以在 `:` 后面指定特殊的格式。
    println!("{} of {:b} people know binary, the other half dont't", 1, 2);

    // 你可以按指定宽度来右对齐文本。
    // 下面语句输出 "     1"，5 个空格后面连着 1。
    // 默认左对齐   <左对齐  >右对齐 ^剧中对齐
    println!("{number:5}", number = 1);
    println!("{number:>5}", number = 1);
    println!("{number:<5}", number = 1);
    println!("{number:^5}", number = 1);

    // 你可以在数字左边补 0。下面语句输出 "000001"。
    // $动态的指定宽度、精度等参数
    println!("{number:>0width$}", number = 1, width = 6);

    // format不会将标准结果输出 而是返回一个String类型的值
    let str = format!("{}", 123);
    println!("{}", str);
}
